<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        /*
         * 解析器在调用函数每次都会向函数内部传递一个隐含的参数，
         *   - 这个隐含的参数就是this,this指向的是一个对象
         *     这个对象我们称之为函数执行的上下文对象
         *   - 根据函数的调用方式不同，this会指向不同的对象
         *        1.以函数的形式调用时，this永远都是window对象
         *        2.以方法的形式调用时，this就是方法所在的对象
         */

        //创建一个name变量
        var name = "全局";

        function fun(){
            console.log(this.name);
        }


        //创建两个对象
        var obj = {
            name:"孙悟空",
            sayName:fun
        }

        //创建两个对象
        var obj2 = {
            name:"猪八戒",
            sayName:fun
        }

        fun();  //这里的this指向window
        obj.sayName();  //这里的this指向obj
        obj2.sayName(); //这里的this指向obj2

    </script>
</head>
<body>

</body>
</html>
